﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.Mappers;

namespace Regra
{
    public class RegraCategoria
    {
        #region Metodos

        #region Carregar Lista Categoria
        /// <summary>
        /// Carrega todas as Categorias
        /// </summary>
        /// <returns>List<CategoriaChampion> com as categorias carregadas</returns>
        public List<CategoriaChampion> CarregarListaCategoria()
        {
            List<CategoriaChampion> retorno = null;
            AcessoDados.AcessoCategoria dao = null;
            try
            {
                dao = new AcessoDados.AcessoCategoria();
                retorno = dao.CarregarListaCategoria();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                dao = null;
            }
            return retorno;
        }
        #endregion

        #region Buscar Id Maximo Categoria

        /// <summary>
        /// Busca o Id maximo existente da categoria
        /// </summary>
        /// <param name="listaCompletaCategoria">lista com todas as categorias existentes</param>
        /// <returns>id máximo existente no xml de categorias</returns>
        public int BuscarIdMaximoCategoria(List<CategoriaChampion> listaCompletaCategoria)
        {
            int retorno = 0;
            try
            {
                var query = (from champion in listaCompletaCategoria
                             select champion.Id).Max();
                retorno = query;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return retorno;
        }

        public int BuscarIdMaximoCategoria()
        {
            List<CategoriaChampion> listaCompletaCategoria = null;
            try
            {
                listaCompletaCategoria = this.CarregarListaCategoria();
                return this.BuscarIdMaximoCategoria(listaCompletaCategoria);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion

        public void SalvarIncluirDadosXml(CategoriaChampion mapperCategoria)
        {
            AcessoDados.AcessoCategoria acesso = new AcessoDados.AcessoCategoria();

            acesso.IncluirDadosXml(mapperCategoria);
        }

        #endregion
    }
}